package com.erf.conf;

import com.netflix.loadbalancer.IRule;
import com.netflix.loadbalancer.RandomRule;
import org.springframework.cloud.client.loadbalancer.LoadBalanced;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.client.RestTemplate;

@Configuration
public class ConsumerConfigration {
    /**
     * restful风格编码和ribbon
     * @return
     */
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }

    /**
     * 配置文件轮循失败，通过bean配置成功
     * @return
     */
    @Bean
    public IRule myRule() {
        // return new RoundRobinRule();//轮询 (默认)
//         return new RandomRule(); // 随机 (测试成功)
        // return new RetryRule();// 重试 (->变成轮询)
        // return new AvailabilityFilteringRule();// (->变成轮询...)
        //权重 起作用了(权重设置成100几乎就是100%就是调用)
        return new NacosWeightedRule();
    }
}
